Providing directed advertising based on user preferences

ABSTRACT

A method determines user preference information for a user for a number of advertisements in a set of advertising blocks and a temporal distribution of the advertising blocks. When each advertising block in the set of advertising blocks occurs according to the temporal distribution during sending of a video program, the method determines a number of advertisements in the advertising block based on the user preference information, determines advertisements for the advertising block equal to the number of advertisements, and sends the determined advertisements during the advertising block.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/401,547, entitled “METHOD AND APPARATUS FOR PROVIDING DIRECTEDADVERTISING BASED ON USER PREFERENCES,” filed Mar. 10, 2009, whichclaims benefit of U.S. Provisional Patent Application No. 61/035,243,entitled “METHOD OF DELIVERING ADVERTISEMENTS TO A USER,” filed Mar. 10,2008, both of which are incorporated by reference in their entirety forall purposes.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to systems and methods for providingstreaming media to users, and in particular, to a system and method fordirected advertising in said streaming media.

2. Description of the Related Art

The dissemination and playback of media programs has undergonesubstantial changes in the past decade. Previously, media programs(which may include audio, video, or both) were disseminated either byanalog broadcast (conventional, satellite, or cable) or by disseminationof films to movie theaters.

These traditional dissemination and playback means remain in use afterthe advent of digital technology. However, digital technologies have hada profound effect on the dissemination and playback of media programs.

First, digital technology permitted the use of digital video recorders(DVRs). DVRs, while similar in function to standard analog videocassette recorders (VCRs), provide a number of additional usefulfunctions including live pause, the ability to record one program whileplaying back another, and the integration of the electronic programguides with DVR functionality (so that the recordation of media programscould be scheduled far in advance).

Second, technology also permitted the dissemination and playback ofmedia programs via the Internet, and with improved signal processing andmore and more households with high-speed Internet access (e.g. DSL,fiber, satellite), this method of dissemination and playback has becomecompetitive with traditional means. Dissemination of media programs viathe Internet may occur either by simple downloading, progressivedownloading or streaming.

For progressive download, a media file having the media program isdownloaded via the Internet using dial-up, DSL, ADSL, cable, T1, orother high speed internet connections. Simple downloading downloads thebytes of the media file in any convenient order, while progressivedownload downloads bytes at the beginning of a file and continuesdownloading the file sequentially and consecutively until the last byte.At any particular time during progressive downloading, portions of thefile are not immediately available for playback. In some situations, theentire file must be downloaded first before a media player can startplayback. In other situations, media players are able to start playbackonce enough of the beginning of the file has downloaded, however, themedia player must download enough information to support some form ofplayback before playback can occur. Playback is often delayed by slowInternet connections and is also often choppy and/or contains a highlikelihood of stopping after only a few seconds. Downloaded material isthereafter stored on the end-user computer.

Streaming delivers media content continuously to a media player andmedia playback occurs simultaneously. The end-user is capable of playingthe media immediately upon delivery by the content provider. Traditionalstreaming techniques originate from a single provider delivering astream of data to a set of end-users. High bandwidths and centralprocessing unit (CPU) power are required to deliver a single stream to alarge audience, and the required bandwidth of the provider increases asthe number of end-users increases.

Unlike progressive downloading, streaming media is delivered on-demandor live. Wherein progressive download requires downloading the entirefile or downloading enough of the entire file to start playback at thebeginning, streaming enables immediate playback at any point within thefile. End-users may skip through the media file to start playback orchange playback to any point in the media file. Hence, the end-user doesnot need to wait for the file to progressively download. Typically,streaming media is typically delivered from a few dedicated servershaving high bandwidth capabilities.

The delivery of media programs can be accomplished under a variety ofmodels. In one model, the user pays for the viewing of the media program(for example, using a pay-per-view service). In another model widelyadopted by broadcast television shortly after its inception, sponsorspay for the presentation of the media program in exchange for the rightto present advertisements during or adjacent to the presentation of theprogram

The advent of DVRs has had a profound effect upon the advertising modeldescribed above. DVRs permit the user to record media programs (inadvance or during their broadcast), and permit the user to easily bypassadvertisements presented during the media program by use of trick-playfunctions such as fast forward and reverse.

However, DVRs care not capable of these operations with a media programwhen the media program is provided as streaming media. In such cases,the user must view the advertisements. The fact that users cannot skipadvertisements within streamed media using a DVR-like device is both astrength and a weakness of this media program delivery paradigm. It is astrength, because advertisers can be assured that the viewers areactually watching the advertisements placed within the media program andnot skipping them. However, it also represents a barrier to thewidespread viewing of media programs via streaming media because usersprefer to skip advertisements that are not of interest. What is neededis a method and apparatus for providing advertisements to usersreceiving streaming media in which the users can directly selectpreferences with regard to which advertisements they would like toreceive and which they would not. The present invention satisfies thatneed.

SUMMARY OF THE INVENTION

A method determines user preference information for a user for a numberof advertisements in a set of advertising blocks and a temporaldistribution of the advertising blocks. When each advertising block inthe set of advertising blocks occurs according to the temporaldistribution during sending of a video program, the method determines anumber of advertisements in the advertising block based on the userpreference information, determines advertisements for the advertisingblock equal to the number of advertisements, and sends the determinedadvertisements during the advertising block.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers representcorresponding parts throughout:

FIG. 1 is a diagram illustrating an exemplary media program system;

FIG. 2 illustrates an exemplary computer system that could be used toimplement the present invention;

FIG. 3 is a diagram illustrating a content delivery subsystem andtop-level operations that can be used to deliver media programs andadvertisements for presentation to a user;

FIGS. 4A and 4B are diagrams illustrating exemplary method steps thatcan be used to insert advertisements into a streamed media program;

FIGS. 5A and 5B are diagrams illustrating further embodiments anddetails regarding the acceptance and use of advertisement options inconnection with the playback of a media program, illustrating possiblefunctional allocation among the hardware elements; and

FIGS. 6A and 6B are flowcharts illustrating exemplary method steps thatcan be used to practice another embodiment of the invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In the following description, reference is made to the accompanyingdrawings which form a part hereof, and which is shown, by way ofillustration, several embodiments of the present invention. It isunderstood that other embodiments may be utilized and structural changesmay be made without departing from the scope of the present invention.

FIG. 1 is a diagram illustrating an exemplary media program system 100.In the illustrated embodiment, the system 100 may comprise one or moremedia program sources 120A, 120B, communicatively coupled to acommunication network 104 such as the Internet and each having one ormore source video servers 122A, 122B communicatively coupled to one ormore source media program databases 124A, 124B. The media program system100 further comprises and a media program provider 110, communicativelycoupled to the communication network 104, and having one or moreprovider video servers 112 and a provider media program database 114. Inone embodiment, the media program provider 110 is a video-on-demandand/or streaming media program provider.

The media program system 100 may stream media programs to the user'scomputer 102 directly from the media program provider 110, or the mediaprogram provider 110 may operate as a portal, providing an interface tothe media programs available from the media program sources 120A and120B, but not the media program itself (which is instead provided by themedia program source 120).

In the first case, the media program provider licenses media programsfrom the media program sources 120 (such as www.fox.com or www.nbc.com),and metadata for such programs is also typically provided as well. Suchmetadata is typically adequate (e.g. it need not be supplemented byinformation from other sources) and can be retrieved by the mediaprogram provider's database 114 for use.

In the second case (e.g. when direct streaming is not licensed), themedia programs are streamed to the user's computer 102 directly from theservers of the media program source 120. When the media program isstreamed directly from the media program source 120, it is often thecase that the metadata provided by the media program source 120 isinsufficient. In such cases, supplementary metadata may be obtained fromindependent media program source 130 (such as www.tv.com orwww.imdb.com) or other third party sources. In this circumstance, therole of the media program provider 110 is that of a portal that providesusers 132 a list of available media programs and an interface to searchto find such programs and to view them.

Media programs and metadata may be obtained via the communicationnetwork 104 or through auxiliary (and/or dedicated) communication links134 by webcrawling (for example, using a program or automated scriptthat browses the World Wide Web in a methodical, automated manner).

Using the computer 102, remote users 132 can communicate with the mediaprogram provider 110, to obtain media programs (includingvideo-on-demand and/or streaming video services) and to search theprovider media program database 114 to find media programs of interest.

The media program system 100 may also comprise one or more advertisementprovider 140. Advertisement sources provide advertisements to the mediaprogram provider 110 for insertion into the streamed media programs. Theadvertisements may be provided to the media program provider 110 usingthe Internet 104 or a dedicated link 146. Also, the advertisements maybe stored in the media program provider 110 and streamed with the mediaprogram to the user computer 102, or the advertisement may be streamedfrom one or more of the advertisement source(s) 140. In the illustratedembodiment, the advertisement provider 140 includes an advertisementprovider server 142 communicatively coupled to an associated andcommunicatively coupled advertisement provider database 144.

FIG. 2 illustrates an exemplary computer system 202 that could be usedto implement elements the present invention, including the user computer102, servers 112, 122, and 142 and the databases 114, 124, and 144. Thecomputer 202 comprises a general purpose hardware processor 204A and/ora special purpose hardware processor 204B (hereinafter alternativelycollectively referred to as processor 204) and a memory 206, such asrandom access memory (RAM). The computer 202 may be coupled to otherdevices, including input/output (I/O) devices such as a keyboard 214, amouse device 216 and a printer 228.

In one embodiment, the computer 202 operates by the general purposeprocessor 204A performing instructions defined by the computer program210 under control of an operating system 208. The computer program 210and/or the operating system 208 may be stored in the memory 206 and mayinterface with the user 132 and/or other devices to accept input andcommands and, based on such input and commands and the instructionsdefined by the computer program 210 and operating system 208 to provideoutput and results.

Output/results may be presented on the display 222 or provided toanother device for presentation or further processing or action. In oneembodiment, the display 222 comprises a liquid crystal display (LCD)having a plurality of separately addressable liquid crystals. Eachliquid crystal of the display 222 changes to an opaque or translucentstate to form a part of the image on the display in response to the dataor information generated by the processor 204 from the application ofthe instructions of the computer program 210 and/or operating system 208to the input and commands. The image may be provided through a graphicaluser interface (GUI) module 218A. Although the GUI module 218A isdepicted as a separate module, the instructions performing the GUIfunctions can be resident or distributed in the operating system 208,the computer program 210, or implemented with special purpose memory andprocessors.

Some or all of the operations performed by the computer 202 according tothe computer program 110 instructions may be implemented in a specialpurpose processor 204B. In this embodiment, the some or all of thecomputer program 210 instructions may be implemented via firmwareinstructions stored in a read only memory (ROM); a programmable readonly memory (PROM) or flash memory in within the special purposeprocessor 204B or in memory 206. The special purpose processor 204B mayalso be hardwired through circuit design to perform some or all of theoperations to implement the present invention. Further, the specialpurpose processor 204B may be a hybrid processor, which includesdedicated circuitry for performing a subset of functions, and othercircuits for performing more general functions such as responding tocomputer program instructions. In one embodiment, the special purposeprocessor is an application specific integrated circuit (ASIC).

The computer 202 may also implement a compiler 212 which allows anapplication program 210 written in a programming language such as COBOL,C++, FORTRAN, or other language to be translated into processor 204readable code. After completion, the application or computer program 210accesses and manipulates data accepted from I/O devices and stored inthe memory 206 of the computer 202 using the relationships and logicthat was generated using the compiler 212.

The computer 202 also optionally comprises an external communicationdevice such as a modem, satellite link, Ethernet card, or other devicefor accepting input from and providing output to other computers.

In one embodiment, instructions implementing the operating system 208,the computer program 210, and the compiler 212 are tangibly embodied ina computer-readable medium, e.g., data storage device 220, which couldinclude one or more fixed or removable data storage devices, such as azip drive, floppy disc drive 224, hard drive, CD-ROM drive, tape drive,etc. Further, the operating system 208 and the computer program 210 arecomprised of computer program instructions which, when accessed, readand executed by the computer 202, causes the computer 202 to perform thesteps necessary to implement and/or use the present invention or to loadthe program of instructions into a memory, thus creating a specialpurpose data structure causing the computer to operate as a speciallyprogrammed computer executing the method steps described herein.Computer program 210 and/or operating instructions may also be tangiblyembodied in memory 206 and/or data communications devices 230, therebymaking a computer program product or article of manufacture according tothe invention. As such, the terms “article of manufacture,” “programstorage device” and “computer program product” as used herein areintended to encompass a computer program accessible from any computerreadable device or media.

Of course, those skilled in the art will recognize that any combinationof the above components, or any number of different components,peripherals, and other devices, may be used with the computer 202.

Although the term “user computer” is referred to herein, it isunderstood that a user computer 102 may include portable devices such ascellphones, portable MP3 players, video game consoles, notebookcomputers, pocket computers, or any other device with suitableprocessing, communication, and input/output capability.

FIG. 3 is a diagram illustrating a content delivery subsystem (CDS) 300and top-level operations that can be used to deliver media programs andadvertisements for presentation to a user 132. The content deliverysubsystem 300 includes the user computer 102, the media program provider110, and an advertisement provider 140. Although the advertisementprovider 140 is illustrated as a separate architectural entity than themedia program provider 110, the advertisement provider 140 may beintegrated within the media program provider 110. The CDS 300 provides ameans to provide media programs and advertisements across a plurality ofdistribution networks, which may include www.hulu.com, www.imdb.com,www.aol.com or www.msn.com. Metadata related to media program andadvertisement content is stored in the content delivery system 300, asis data describing where the media programs and advertisements may befound within the CDS 300.

The user computer 102 includes an interface module 302 and a mediaprogram player 304. The interface module 302 includes instructionsperformed by the user computer 102 that are used to present informationto the user 132 and to accept user input, including commands. Thepresented information may include a program guide, advertisement options(as discussed further below), and the user input may include selectedadvertisement options and media program playback selections.

Using the user computer 102 and the interface module 302, the user 132enters a choice for a media program. The user interface module 302transmits a message to a feed service 306 implemented by the mediaprogram provider 110 for a program identifier (PID). The PID is used toidentify content such as a specific media program running on a specificdistribution network. For example, season 2 of “The Office” running onwww.hulu.com will have a different PID than the same exact show runningon www.msn.com. In one embodiment, every media program stored in adistribution network. The feed service 306 then returns the PID to theuser interface module 302. The PID and associated commands (e.g. theplay command) are provided to the media program player 304. The mediaprogram player 304 may be embedded in a webpage from a third party, ormay be part of a webpage maintained by the media program provider 110.

The media program player 304 transmits the PID to a content selector 308implemented by the media program provider 110. The content selector 308identifies the actual path (uniform resource locator or URL, forexample) to the requested media program associated with the transmittedPID, as well as programming metadata that is used by the media programplayer 304 to help identify restrictions (for example, preventing accessto adult-themed content if the user 132 is known to be under 18), adtargeting rules as well as advertising breaks. The advertising breaksindicate where advertisements may be inserted, and can be specified interms of the time since the beginning of the media program, the timeremaining, or any other suitable measure. The URL and the metadata arethen transmitted to the media program player 304. The media programplayer provides a streaming video request to the media streaming server114 at the URL received from the content selector 308. The streamingvideo request includes the PID and may include other information aswell.

The media streaming server (MSS) 114 responds to the streaming videorequest by providing the streaming video to the user computer 102. Inone embodiment, the MSS 114 is a service provider that has a wide rangeof geographically distributed computers that house replicated copies ofmedia programs and website content. The MSS 114 can be a third partyprovider (e.g. only contractually associated with the media programprovider 110), or can be part of the media program provider 110.Geographically diverse servers assures that when the user 132 requestsplayback of a media program, the media program is streamed from ageographically local server, to increase media program playbackperformance. Multiple servers also offer redundancy.

The MSS 114 obtains the media program from secure storage 312 which maybe disposed in the media program provider 110 facility, or which may bedisposed at a third party facility. The content management service 310interfaces with the feed service 306, the content selector 308, andsecure storage 312 to manage which media programs are provided to themedia streaming server 114. External entities can include third partiessuch entities that provide the advertisements that are to be displayedto the user (which includes sponsors and/or their advertising agencies),third party providers of media programs, and entities from which theuser 132 may purchase goods or services as further described below.

The media program player 304 plays the media program, and at the timesidentified in the advertising breaks defined above, requestsadvertisements from the advertising provider 140 using a path (e.g. URL)provided either by the content selector 308 or the media streamingserver 114. The advertising provider 140 streams the requestedadvertisement is streamed to the media program player 304 at theappropriate time, where it is displayed to the user 132.

FIG. 4A is a diagram illustrating exemplary method steps that can beused to insert advertisements into a streamed media program. In block402, the playback of a media program commences. Block 404 determineswhether there is an advertisement opportunity during the playback of themedia program. In one embodiment, the advertisement opportunity isdetermined using the advertising breaks described above.

Block 406 presents advertising options to the user 132. The advertisingoptions may be a simple matter of directly selecting whichadvertisements the user 132 wishes to see, or more complex advertisingoptions may be presented for selection as described in more detail belowand with regard to FIGS. 5A-6B.

Turning first to the simple case of simply directly selecting whichadvertisements the user 132 would like to view or how the user 132 wouldlike to see them during the advertising breaks in the media program,block 408 determines whether the user 132 has made a selection. If noadvertisement(s) were chosen, processing proceeds to block 412, where anadvertisement is chosen for the user 132 using previously stored choicesor other factors such as user profiles, or user viewing preferences. Ifone or more advertisements were selected, the selection is stored forlater use . . . both to play the selected advertisement, and in oneembodiment, to select advertisements in the future when none areselected or if an insufficient number are selected.

In block 414, the chosen advertisements are streamed to the usercomputer 102 and shown to the user 132. In one embodiment, if the user132 only selected N advertisements and there were N+1 advertising slotsin the advertisement break, further advertisements are chosen forstreaming and presentation to the user 132 for these unchosenadvertisement slots.

Block 416 determines whether the playback of the media program iscomplete. If it is not complete, processing returns to block 404 toawait another advertisement opportunity. If playback is complete,processing of the current media program ends.

The present invention need not be implemented such that the commencementof the media program begins before the advertisement selections aremade. In one embodiment, the advertising options are presented to theuser 132 in advance of the selection of the media program.

FIG. 4B is a flow chart depicting exemplary method steps that can beused to practice a second embodiment of the invention in which theadvertisement options are presented to the user 132 in advance of themedia program playback.

In block 452, advertising options are presented to the user 132 forselection. In block 454, a determination is made as to whether the user132 has selected any advertisements. If no advertisement is chosen, achoice is made for the user 132 without further input using previouslystored choices or other available information, as shown in block 458. Ifone or more choices have been made, the choices are stored for later usein block 456. In block 450, playback of the selected media programbegins. During playback of the media program, advertisementopportunities (or advertisement breaks) occur. When such advertisementopportunities occur, the ad is shown to the user 132, and this processis repeated until playback of the media program is complete, as shown inblocks 452-456.

FIG. 5A is a diagram illustrating further embodiments and detailsregarding the acceptance and use of advertisement options in connectionwith the playback of a media program, illustrating possible functionalallocation among the hardware elements. In block 502, the user computer102 accepts a command from the user 132 to play a streamed mediaprogram. The user computer 102 provides a command to play the streamedmedia program to the media program provider 110. In one embodiment, thecommand to play the streamed media program is accepted by the feedservice 306, which returns a program identifier (PID). In anotherembodiment, the PID for multiple media programs that are available istransmitted to the user computer 102 in advance as a part of a programguide.

In block 502, user advertisement preference options are presented to theuser 132 by the user computer 102. The information for presenting suchoptions can be locally stored (e.g. in a memory of the computer 102 asshown in block 504), or they can be stored by the media program provider110 or third party (as shown in block 506) and transmitted to the usercomputer 102 when needed. In block 508, the user advertisementpreference options are received in the user computer 102 and presentedto the user 132 for selection

The advertisement options presented can include any combination of thefollowing:

Presenting which Advertisements the User 132 can View in the CurrentCommercial Break:

The advertisements can be presented via a named list, icons, orthumbnails that can be selected by the user 132. In one embodiment, theoptions presented are selected based upon either information about theuser 132 that is provided either via an independent interface, fromprevious advertisement selections, from a third party 314 database, orfrom the media program that was selected by the user 132 to be played(which can be identified by metadata associated with the streamed mediaprogram). For example, the user 132 may be presented with list showing aSNICKERS bar, a LA-Z-BOY recliner, and NETFLIX if the previous user 132advertisement selections indicated that the user 132 was interested inthese products or if the user 132, based on the current program viewedor the user's history of program viewing, survey information, or otherinformation, was thought to lead a sedentary lifestyle. If previousadvertisement selections, the current program being viewed, the user'sviewing history and/or survey information indicated that the user 132would likely be interested in different advertisements, otheradvertisement options may be shown. For example, if the currently viewedmedia program is of the TOUR OF CALIFORNIA, the viewer may be presentedwith a list showing a CLIF bar, a KOOBI bicycle seat, and a SPINERVALSvideo.

In another embodiment, the advertisement options presented to the user132 include different combinations of groups of required and electiveadvertisements. Required advertisements are those that must be viewed bythe user 132, while elective advertisements are those over which theuser 132 has a choice. For example, if the user profile indicated thatthe user 132 was an avid bicyclist, the advertising options presentedcould include a list of advertisements from an elective group (e.g.advertisements having to do with cycling products or services) and alist of advertisements from a required group (for example, having to dowith detergents or other staples that virtually everyone needs). Inanother embodiment, the advertisements presented to the user 132 caninclude required advertisements (the presentation of which the user 132has no control) and elective advertisements (the presentation of whichthe user 132 has control). In this embodiment, the fee charged to thesource of the goods or services described in the advertisement may becharged a different fee for required advertisements than electiveadvertisements).

The user 132 may select one or more of the optional advertisementsprovided, and these are the advertisements that will be shown during theadvertisement break. The identity of the selected items (as determinedby a PID or analogous value) can later be used to refine futureadvertisement selections that are presented to the user 132. In oneembodiment, the identity of the selected items is transmitted externalto the user computer 102 (for example, to the media program provider110, to the advertising provider 140 or a third entity. In anotherembodiment, the identity of the selected items is held internal to theuser computer 102 and not disclosed elsewhere. This embodiment increasesthe privacy of the viewer information. In yet another embodiment, asubset of the viewer information is transmitted external to the usercomputer 102, and other information is held secure within the usercomputer 102.

Presenting which Advertisements the User 132 can View in FutureCommercial Breaks:

The options presented to the user 132 may include advertisements formore than just the current commercial break. For example, the user 132may be asked to select all of the advertisements that will be presentedduring the media program, for all commercial breaks.

Presenting Categories of Advertisements to the User 132:

In this embodiment, the user 132 is presented with different categoriesof advertisements. In one embodiment, the categories offered to the user132 become more specific as the user 132 makes advertisement choices ofprovides other information. For example, initially, the categoriesoffered may be broadly described as “Home,” “Auto,” and “Outdoors”, butif the user's choices indicate that the user 132 is more interested inthe outdoors, the categories presented may be changed to sub-categorieswithin the “Outdoor” category, such as “Winter Sports,” “Summer Sports,”and the like.

Presenting Options Controlling how the Advertisements are Presented inthe Media Program:

In another embodiment, the user 132 is presented with options describinghow the advertisements are presented in the media program. These optionsmay describe the timing of the presentation of the advertisements. Inthis case, subsets of advertisements can be provided in advertisingblocks, and the user 132 can be given the option of expressing a userpreference to describe the number and/or temporal distribution ofadvertisements to be presented in each block and the temporaldistribution of the advertisement blocks within the streamed mediaprogram. For example, the user 132 may be required to view all of a setof advertisements, but given the option of seeing them widely dispersedthroughout the media program (in other words, inserting two 30 secondadvertisements every 5 minutes rather than six 30 second advertisementsevery 15 minutes). Using this option, the user 132 may elect to view allof the advertisements in the beginning, the end, or in the middle of themedia program, or the user 132 may elect to view the advertisementsspread out over the length of the media program. Recognizing that theuser 132 is less likely to remain seated and watch commercials that arepresented during extended commercial breaks, the options presented tothe user 132 may limit the user's control so that each commercial breakmust include at least n commercials and no more than m commercials, withtypical values of n and m being 2 and 8, respectively.

The sponsor of the advertisement (the entity ultimately paying the mediaprogram provider 110 or associated entity for providing the mediaprogram and/or advertisement to the user 132) can be charged for thepresentation of one or more of the advertisements an amount that isbased on how the advertisement is to be presented in the streamed mediaprogram. In this embodiment, the sponsor can specify a timing structurethat limits the user's options in determining when the advertisementsare presented, or the sponsor may simply be charged differing amountsbased upon when the user 132 decides to present the advertisement. Forexample, the sponsor may be asked to pay more for an advertisement thatis the first in a block of advertisements in an advertising break.

The presented options may optionally include how the advertisements arepresented in the viewer space. For example, the user 132 may bepresented with the option of viewing the commercial on a pop-up window,optionally, with muted audio.

In block 510, the selected user preference options are accepted andstored. The selections can be locally stored in the user computer 102 orstored by the media program provider 110. As described above, theselected user preference options can be later used to determine whichadvertisement options to present to the user 132, or to determine whichadvertisements to present when the user 132 has not selected whichadvertisements they would like to be streamed along with the mediaprogram.

In one embodiment, the user 132 is provided with different (andoptionally, preferential) options if the user 132 agrees to provide somekind of user compensation. Such user compensation can include thepurchase of the streamed media program or the purchase of a productand/or service independent from the streamed media program. In otherwords, different user advertisement preference options can be providedif the user 132 has provided compensation by paying for the playback ofthe media program, or if the user 132 has provided some compensationunrelated to the playback of the media program. For example, the user132 may want to view a media program comprising a movie, and want toview the movie either with few advertisements or none at all. In such acase, the user 132 is provided with the option of providing compensationfor this privilege.

The compensation can take the form of the user 132 providing personalprofile information about themselves and/or their viewing habits,ordering a product, or ordering a service. In the example of a user 132wanting to view a media program without any advertisements, this can beaccomplished by ordering a pizza, groceries, or any product or servicefrom an authorized source, regardless of whether the source has anyconnection whatever to the chosen media program. In this situation themedia program provider 110 is compensated by the source from which theorder was made, in the form of a percentage of the gross value of thesale, the profit of the sale, or by a fixed fee. Consequently, any user132 desirous of viewing media programs without advertisements need onlyorder their groceries (for example) using the media program provider100.

The purchase options presented to the user 132 may include only thosewhich are related to the content of the selected media program (asdetermined by metadata associated with the selected media program), ormay include products and services unrelated to the selected mediaprogram. The purchase options presented to the user 132 may includeproducts and/or services from vendors who are in a pool of advertiserswhose advertisements are shown using the CDS 300. Alternatively, thepurchase options presented to the user may include products and/orservices from vendors who are not advertisers (e.g. advertisements forthe providers are not among those that can be presented to the user).For example, a provider may join a group of product and serviceproviders that wish to be listed as approved vendors that the user mayorder products and services from in order to obtain preferentialadvertisement options.

In one embodiment, the providers of the products and services which maybe ordered by the user 132 pay for the privilege of being included inthe list of product of service providers that the user can choose from.In another embodiment, the providers of the products pay only when auser orders a product of service from the provider. In still anotherembodiment, the provider pays a fee for being included in the list thatthe user 132 can choose from and an additional fee is charged when theuser orders a product or service from the provider.

The foregoing functionality is illustrated in blocks 512-518 of FIG. 5A.Block 512 determines whether the user 132 has provided compensation bymaking the appropriate selection of user ad preference options. Anindicia of the provided compensation (which identifies the compensationprovided and the user 132 providing it) is then provided to the mediaprogram provider 110 or an external entity. These operations are shownin block 512. In blocks 514 and 516, the media program provider 110determines the compensated user preference options and transmits them tothe user computer 102 to be presented to the user 132. The compensateduser preference options can include a selection of advertisementsdiffering from those presented to users not providing compensation,different options regarding how the advertisements are presented in thestreaming media program, or an option of having no advertisements atall.

Turning to FIG. 5B, the selected user preferences or compensated userpreferences are accepted, stored and transmitted to the media programprovider 110, as shown in block 518. The media program provider 110accepts the user 132 input defining the user preferences regarding thepresentation of the advertisements in the streamed media program, asshown in block 520. In one embodiment, the user input directly definesuser preferences regarding the presentation of advertisements in thestreamed media program.

In this context, user input “directly defining” is to be distinguishedfrom indirect user input that can be used to identify appropriateadvertisements. For example, it is known to monitor a user's clickstreamto determine which advertisements are supplied to a user 132 withinwebpages. However, while the clickstream may indirectly define whichadvertisements are presented, it does not define which advertisementsare presented during a streaming media program and does not directlydefine the advertisements that are presented. At best, in this case, theuser's desires regarding advertisements are inferred from theclickstream, they are not directly provided. One example of directdefinition of advertisement preferences is the case where the user 132is provided with a list of advertisements, and allowed to choose whichadvertisements of those on the list they would like to view.

Given the provided user preferences, the media program with the insertedadvertisements are provided to the user computer 102. This can beaccomplished as shown and described with reference to FIG. 3 (in whichthe media program with advertising breaks is provided from the mediaprogram provider 110 and the user computer retrieves the advertisements)or as shown in FIG. 5B (in which the media program provider 110retrieves the advertisements (either from storage in the media programprovider 110 itself or through advertising provider 140) and insertsthose advertisements in the streamed media program before providing itto the user computer 102 for display. The technique shown in FIG. 5B isadvantageous in that the media program provider 110 retains control overthe presentation of the streaming media, making it more difficult formodifications in the software of the user computer 102 to circumvent theretrieval and presentation of advertisements. With this technique, themedia program provider 110 requests advertisements that comply with thedefined user preferences, and receives the appropriate advertisementsfrom the advertising provider 140. These advertisements are insertedinto the streamed media according to the user-defined preferences andtransmitted to the user computer 102 where they are presented on adisplay.

FIGS. 6A and 6B are flowcharts illustrating exemplary method steps thatcan be used to practice another embodiment. In this embodiment, the userpreference options are presented to the user 132 before the mediaprogram playback is requested. Turning to FIG. 6A, in block 602, userpreference options are presented to the user 132. As before, suchoptions can be locally stored (block 604 or stored remotely as shown inblock 606). The selected user preferences are accepted and stored, asshown in block 608.

Next, in embodiments that include provision for compensated userpreferences and options when the user 132 provides compensation, block610 determines if an indicia of user compensation was entered by theuser 132. If so, compensated user preference options are determined andtransmitted to the user computer 102 and presented to the user 132, asshown in blocks 612-616. The user computer 102 accepts, stores, andtransmits user preferences or compensated user preferences, andtransmits them to the media program provider 110 as shown in block 618.The media program provider 110 then accepts the user input directlydefining user preferences regarding the presentation of theadvertisements in the streamed media program as shown in block 620.

Turning to FIG. 6B, a command is provided to play a streamed mediaprogram, as shown in block 622. The request is transmitted to the mediaprogram provider 110. In the embodiment illustrated in FIG. 6B, themedia program provider 110 inserts advertisements in the streamed mediaprogram according to the defined user preferences and transmits thestreamed media program with the advertisements to the user computer 102for presentation, as shown in blocks 624 and 628. However, as describedabove, this can be accomplished using a different paradigm wherein themedia program provider 110 transmits the streaming media program andidentifies the advertising breaks, and the user computer 102 retrievesthe advertisements directly from the advertising provider 140. Finally,the streamed media program is presented to the user 132 on the display222.

Those skilled in the art will recognize many modifications may be madeto this configuration without departing from the scope of the presentinvention. For example, those skilled in the art will recognize that anycombination of the above components, or any number of differentcomponents, peripherals, and other devices, may be used with the presentinvention.

CONCLUSION

This concludes the description of the preferred embodiments of thepresent invention. The foregoing description of the preferred embodimentof the invention has been presented for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise form disclosed. Many modifications andvariations are possible in light of the above teaching. It is intendedthat the scope of the invention be limited not by this detaileddescription, but rather by the claims appended hereto. The abovespecification, examples and data provide a complete description of themanufacture and use of the composition of the invention. Since manyembodiments of the invention can be made without departing from thespirit and scope of the invention, the invention resides in the claimshereinafter appended.

What is claimed is:
 1. A method comprising: providing, by a computersystem, advertisement options for configuring a total amount ofadvertisements that is set by a media program provider of a videoprogram, wherein the advertisement options allow selecting of a numberof advertising blocks, allow selecting of a number of advertisements inthe number of advertising blocks, allow selecting of a temporaldistribution of the number of advertising blocks, and allow a numberrestriction per advertising block, wherein the advertisement options areprovided to a user without a need for the user to provide an indicia ofcompensation for receiving the advertisement options; receiving, by thecomputer system, first user preference information from the userselecting the number of advertising blocks for the video program;receiving, by the computer system, second user preference informationfrom the user selecting the temporal distribution that distributes theselected number of advertising blocks throughout the video program, thetemporal distribution being available to be specified by the userthroughout the video program; receiving, by the computer system, thirduser preference information from the user selecting the number ofadvertisements to be included in each of the number of advertisingblocks, wherein the third user preference information is restrictedbased on the number restriction per advertising block, and wherein thetotal amount of advertisements is constant irrespective of the firstuser preference information, the second user preference information, andthe third user preference information; using, by the computer system,the first, the second, and the third user preference information toconfigure the number of advertising blocks, the temporal distribution ofthe number of advertising blocks, and the number of advertisements to beincluded in each of the number of advertising blocks for the videoprogram; determining, by the computer system, when each advertisingblock in the number of advertising blocks occurs according to thetemporal distribution during sending of the video program; when eachadvertising block occurs, performing: determining, by the computersystem, the number of advertisements in the advertising block based onthe third user preference information; determining, by the computersystem, advertisements for the advertising block equal to the number ofadvertisements in the advertising block; and sending, by the computersystem, the determined advertisements during the advertising block. 2.The method of claim 1, further comprising: receiving, by the computersystem, the first, the second, and the third user preference informationfrom a user interface, the first, the second, and the third userpreference information selected by the user.
 3. The method of claim 1,wherein the number restriction per advertising block limits the usersuch that each advertising block includes at least N number ofadvertisements and no more than M number of advertisements.
 4. Themethod of claim 1, wherein different advertisement options are presentedto the user depending on whether compensation from the user was receivedor not.
 5. The method of claim 1, wherein the first user preferenceinformation states only one advertising block is included in the videoprogram and the second user preference information indicates where inthe video program the one advertising block is located.
 6. The method ofclaim 1, wherein the second user preference information describes thetemporal distribution of a plurality of advertising blocks in the numberof advertising blocks throughout the video program.
 7. The method ofclaim 1, further comprising receiving fourth user preference informationselecting specific advertisements that the user would like included inat least one of the number of advertising blocks.
 8. The method of claim7, further comprising: sending the advertisement options to a userinterface, the advertisement options including required advertisementsthat the user must view and elective advertisements that the user canchoose to view; and receiving the fourth user preference informationthat specifies which of the elective advertisements the user chooses toview.
 9. The method of claim 8, wherein the fourth user preferenceinformation describes a combination of the required advertisements andthe elective advertisements the user chooses to view.
 10. The method ofclaim 1, wherein a sponsor is charged for at least one of theadvertisements and a cost of the at least one of the advertisements isbased on how the at least one advertisement is to be presented in thevideo program.
 11. A method comprising: receiving, by a computer system,advertisement options for configuring a total amount of advertisementsthat is set by a media program provider of a video program, wherein theadvertisement options allow selecting of a number of advertising blocks,allow selecting of a number of advertisements in the number ofadvertising blocks, allow selecting of a temporal distribution of thenumber of advertising blocks, and allow a number restriction peradvertising block, wherein the advertisement options are provided to auser without a need for the user to provide an indicia of compensationfor receiving the advertisement options; displaying, by the computersystem, the advertisement options in a user interface; receiving, by thecomputer system, first user preference information from the userselecting the number of advertising blocks for the video program;receiving, by the computer system, second user preference informationfrom the user selecting the temporal distribution that distributes theselected number of advertising blocks throughout the video program, thetemporal distribution being available to be specified by the userthroughout the video program; receiving, by the computer system, thirduser preference information from the user selecting the number ofadvertisements to be included in each of the number of advertisingblocks, wherein the third user preference information is restrictedbased on the number restriction per advertising block, and wherein thetotal amount of advertisements is constant irrespective of the firstuser preference information, the second user preference information, andthe third user preference information; sending, by the computer system,the first, the second, and the third user preference information for thenumber of advertising blocks, the temporal distribution of the number ofadvertising blocks, and the number of advertisements to be included ineach of the number of advertising blocks for the video program to avideo program provider; receiving, by the computer system, the videoprogram, wherein each advertising block in the number of advertisingblocks is configured in the video program according to the number ofadvertising blocks, the temporal distribution, and the number ofadvertisements in each of the number of advertising blocks specified inthe first, the second, and the third user preference information. 12.The method of claim 11, wherein the number restriction per advertisingblock limits the user such that each advertising block in the number ofadvertising blocks includes at least N number of advertisements and nomore than M number of advertisements.
 13. The method of claim 11,wherein different advertisement options are displayed depending onwhether compensation from the user was received or not.
 14. The methodof claim 11, further comprising receiving fourth user preferenceinformation selecting specific advertisements that the user would likeincluded in at least one of the number of advertising blocks.
 15. Themethod of claim 14, wherein: the advertisement options include requiredadvertisements that the user must view and elective advertisements thatthe user can choose to view; and the fourth user preference informationspecifies which of the elective advertisements the user chooses to view.16. The method of claim 15, wherein the fourth user preferenceinformation describes a combination of the required advertisements andthe elective advertisements the user chooses to view.
 17. The method ofclaim 11, wherein a sponsor is charged for at least one of theadvertisements and a cost of the at least one of the advertisements isbased on how the at least one advertisement is to be presented in thevideo program.
 18. A non-transitory computer-readable storage mediumcontaining instructions, that when executed, control a computer systemto be configured for: providing advertisement options for configuring atotal amount of advertisements that is set by a media program providerof a video program, wherein the advertisement options allow selecting ofa number of advertising blocks, allow selecting of a number ofadvertisements in the number of advertising blocks, allow selecting of atemporal distribution of the number of advertising blocks, and allow anumber restriction per advertising block, wherein the advertisementoptions are provided to a user without a need for the user to provide anindicia of compensation for receiving the advertisement options;receiving first user preference information from the user selecting thenumber of advertising blocks for the video program; receiving seconduser preference information from the user selecting the temporaldistribution that distributes the selected number of advertising blocksthroughout the video program, the temporal distribution being availableto be specified by the user throughout the video program; receivingthird user preference information from the user selecting the number ofadvertisements to be included in each of the number of advertisingblocks, wherein the third user preference information is restrictedbased on the number restriction per advertising block, and wherein thetotal amount of advertisements is constant irrespective of the firstuser preference information, the second user preference information, andthe third user preference information; using the first, the second, andthe third user preference information to configure the number ofadvertising blocks, the temporal distribution of the number ofadvertising blocks, and the number of advertisements to be included ineach of the number of advertising blocks for the video program;determining when each advertising block in the number of advertisingblocks occurs according to the temporal distribution during sending ofthe video program; when each advertising block occurs, performing:determining the number of advertisements in the advertising block basedon the third user preference information; determining advertisements forthe advertising block equal to the number of advertisements in theadvertising block; and sending the determined advertisements during theadvertising block.
 19. The non-transitory computer-readable storagemedium of claim 18, further comprising: sending the advertisementoptions to a user interface, wherein selection of the advertisementoptions is used to determine the first, the second, and the third userpreference information.
 20. The method of claim 1, wherein the first,the second, and the third user preference information is specified bythe user without providing the indicia of compensation for viewing thevideo program.